Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Проблема с кодировкой в MySQL и PHP (Andr)
Author Message
Andr
Guest





Карма: 388
   поощрить/наказать


PostPosted: Mon Jul 16, 2007 6:05 pm (написано за 4 минуты 10 секунд)
   Post subject: Проблема с кодировкой в MySQL и PHP
Reply with quote

Проблема с кодировкой. Код

<?php
function connect_to_db() {
$link = mysql_connect("localhost", "sa", "123")
        or die("Could not connect");
    print"<br>";
    print "Connected successfully";
    print"<br>";
   $ok=mysql_select_db("test") or die("Could not select database");
        $ok = $ok.@mysql_query("SET NAMES 'cp1251'");
                }
connect_to_db();
$str = mysql_query("select * from Gorod");
$rows = mysql_num_rows($str);
$rows;
while($rows!=0)
{
$NameG1 = mysql_fetch_array($str);
$NameG[$rows-1]=array_pop($NameG1);
print($NameG[$rows-1]);
print"<br>";
print($NameG[$rows-1]);
$rows=$rows-1;
}
?>
Результат в IE
Connected successfully
Њ®бЄў
Њ®бЄў ‘ ­Єв-ЏҐвҐаЎгаЈ
‘ ­Єв-ЏҐвҐаЎгаЈ‘ ¬ а
‘ ¬ а Ќ®ў®бЁЎЁабЄ
Ќ®ў®бЁЎЁабЄ‰®иЄ а-Ћ«
‰®иЄ а-Ћ«
Кодировка БД cp1251

В PHPExpertEditor такой же результат + пишет
File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2) Character set '#51' is not a compiled character set and is not specified in the 'c:\mysql\share\charsets\Index' file
1 Путь неверный
2 в папке Z:\usr\local\mysql5\share\charsets нет файлов *.conf
Понимаю, что проблема стара, все уже перепробовал. Подскажите, кто знает в чем проблема.
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Jul 16, 2007 7:20 pm (спустя 1 час 14 минут; написано за 4 минуты 34 секунды)
   Post subject:
Reply with quote

Andr
проверьте, что эффект от SET NAMES действительно был:
Code (SQL): скопировать код в буфер обмена
SHOW VARIABLES
Если результат ожидаемый, то по-моему из вышеприведённого следует, что данные в базе - не в cp1251. То ли UTF, то ли стандратная шведская, то ли ещё что..
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Mon Jul 16, 2007 8:02 pm (спустя 42 минуты; написано за 6 минут 47 секунд)
   Post subject:
Reply with quote

Maus wrote:
Andr
проверьте, что эффект от SET NAMES действительно был:
Code (SQL): скопировать код в буфер обмена
SHOW VARIABLES
Если результат ожидаемый, то по-моему из вышеприведённого следует, что данные в базе - не в cp1251. То ли UTF, то ли стандратная шведская, то ли ещё что..
Проверил SHOW VARIABLES like 'char%'
результат - все cp1251, только character_set_system utf8
Может из-за этого?
Back to top
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Mon Jul 16, 2007 8:58 pm (спустя 56 минут; написано за 2 минуты 48 секунд)
   Post subject:
Reply with quote

Гость wrote:
только character_set_system utf8
Может из-за этого?
нет, так и должно быть. Это из-за того, что на внутреннем уровне MySQL работает исключительно с UTF.
Ну пробуйте дальше
Code (SQL): скопировать код в буфер обмена
SET NAMES latin1
или
Code (SQL): скопировать код в буфер обмена
SET NAMES utf8
- у Вас богатое поле для экспериментов ...
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML